Dokumentation Harmony.dll Scripts

Inhalt

1) Allgemeiner Aufbau eines Scriptes
2) Beschreibung der mglichen Befehle
A) Anhang: Liste der SonderTasten fr KeySupport

1) Allgemeiner Aufbau eines Scriptes
_____________________________________

Ein Script ist eine Textdatei mit der Erweiterung *.script.wav
In ihr steht eine Liste von Befehlen, die nacheinander ausgefuehrt werden.
Jeder Befehl steht in einer SECTION, in welcher die benoetigten Parameter
wie in einer INI Datei uebergeben werden. Der Name der Sektion ist beliebig
waehlbar und in [] zu setzen, jedoch wird zuerst immer die Sektion des Namens
[Execute] bearbeitet. Gross- und Kleinschreibung wird konsequent ignoriert.

Jede Sektion hat zwei Parameter:

Command= Enthaelt den Befehl, der ausgefuehrt werden soll

Next= Enthaelt den Namen der Sektion, die als naechstes ausgefuehrt
      werden soll. Dabei kann dem Sekionsnamen der Name eines anderen
      Scriptes inclusive relativem Pfad vorangestellt weren und muss
      durch ; getrennt werden. Handelt es sich um die aktuelle Datei,
	  so kann der gesamte Dateiname samt ; ausgelassen werden.
	  Folgt Next= kein Wert oder fehlt Next=, so ist die Ausfhrung
	  des Scriptes Beendet. 
	  Beispiele:
	  next=Init springt zur Sektion [Init] der aktuellen Datei
	  next=..\music\playBG.script.wav;Init Springt zur Sektion [Init]
	  in der Datei playBG.script.wav im Ordner Music
	  
Desweiteren koennen/muessen befehlspezifische weitere Parameter angegen werden
in der Form Parameter=Wert, wobei Leerzeichen vor und nach dem = verboten sind.

Alle Angaben, die nicht dieser Form entsprechen, werden als Kommentare betrachtet
und ignoriet. Jedoch sollte entsprechend der allgemeinen Konvention fuer Ini-Files
ihnen ein ; zur Kennzeichnung als Kommentar vorangestellt werden. Beispiel:

[clear]
;loescht die OutPutListe
Action=MidiTickFunction
Value=clear
next=


2) Beschreibung der mglichen Befehle
______________________________________

WriteToLog

Beschreibung:
Schreibt einen Kommentar in die Harmony.log. Dies kann zu Debugen nuetzlich sein.

Parameter:
Text: Gibt den zu schreibenden Text an

Beispiel:
[Comment]
Action=WriteToLog
Text=Kommentier mer mal ein wenig
next=


ExecProgram

Beschreibung:
Fhrt ein externes Programm oder Dokument aus.
Vornehmlich bei diesem Befehl kann es zu erheblichen systemabhaengigen Abweichungen kommen.

Parameter:
Command: Pfad und Dateiname der auszufhrenden Datei
Type  semioptional; Wird als Wert document eingetragen, so wird signalisiert, dass es sich
      nicht um ein Programm handelt, sondern um ein Dokument, das mit seiner 
	  verknuepften Anwendung geoeffnet werden soll
Wait  semioptional; Wird der Wert True uebergeben, so wird nach moeglichkeit das Script und
      somit auch der Maker so lange angehalten, bis das gestartete Programm / Anwendeung
	  beendet ist.

Parameter bei Dokumenten -> NUR fuer Type=document
Display   wird der Wert showerrors uebergeben, so werden eventuelle Fehlermeldungen angezeigt
          implementierung ist systemabhaengig
		  
Parameter bei Programmen -> ignored fuer Type=document
Display   gibt den Displaystatus des Programmes beim Starten an. Moegliche Werte:
          minimized        Startet das Programm minimiert.
	   	  maximized        Startet das Programm maximiert.
		  normal           Startet das Programm im Normalmodus.
		  minimizedactive  Startet das Programm minimiert und im Hintergrund.
		  notactivated     Startet das Programm im Hintergrund.
		  alles andere     Startet das Programm mit default Einstellungen
Priority  Stellt die Rechenleistungsprioitaet des Programmes an. Moegliche Werte:
          idle             minimale Prioritaet fuer Hintergrundprozesse oder Services
		  hight			   erhoehte Prioritaet als default Einstellung
		  realtime		   maximale Rechenleistung VORSICHT: Kann zum Stillstand fuehren
		  alles andere     default Einstellungen
Result    optional; gibt den Dateinamen einer Rueckgabewertdatei an.
          enthaellt die Datei in der ersten Zeile eine Zeichenkette, die eine Ganzzahl
		  repraesentiert, so wird diese in die OutPutListe eingereit, sonst -1
		  
Beispiel:

[execute]
;Aufrufen der Homepage
Action=ExecProgram
Type=document
command=http://www.inelukis-rpgmaker.de.vu
next=

MciCommand

Beschreibung:
Gibt einen MCI-Befehl an das Windowssubsystem weiter.
Eine Beschreibung saemtlicher MCI-Befehle ist zur Zeit im Internet unter
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/mci_6hdf.asp
zu finden. Die Uebergabe erfolgt als String und nicht als Message.
Rueckgabewerte und Fehlermeldungen werden in die Harmony.log geschrieben.

Parameter:
Command   enthaelt den kompletten MCI-String
          der String %path% wird hierbei durch den Pfad zur aktuell ausgefuehrten Datei ersetzt

Beispiel:

[execute]
Action=WriteToLog
text=Abspielen von ..\mp3\demo.mp3
next=open mp3

[open mp3]
acTion=mcicommand
command=open "%path%\..\mp3\demo.mp3" alias mp3
next=play mp3

[play mp3]
Action=mcicommand
command=play mp3 wait
next=close mp3


[close mp3]
action=mcicommand
command=close mp3
next=exit

[exit]
action=WriteToLog
text=..\mp3\demo.mp3 abgespielt
next=

MidiTickFunction

Beschreibung:
Setzt das Verhalten der GetMidiTick-Funktion des Makers

Parameter:
value   Setzt den Interpretationsmodus. Moegliche Werte:
        original    Stellt den Standardmodus (Playpos der BGM) wieder her.
		output      GetMidiPos liest jeweils einen Wert aus der OutPutListe.
		clear       Loescht die gesamte OutPutListe. Aendert nicht den Modus.
		
Beispiel:
[output]
;OutPutListe wird bei GetMidiPos ausgelesen
Action=MidiTickFunction
Value=output
next=

AddOutPut

Beschreibung:
Haengt einen Wert an die OutPutListe an.

Parameter:
Value   Wert, der geschrieben werden soll. Dabei handelt es sich um eine
        Ganzzahl im Bereich von 2147483648 bis 2147483647
		
Beispiel:

[Schreibe 13]
;Schreibt 13 in die OutPutLists
Action=AddOutPut
Value=13
next=

EnableKeySupport

Beschreibung:
Aktiviert bzw deaktiviert die Tastendruckueberwachung (KeySupport)

Parameter:
enable  Moegliche Werte:
        True   Aktiviert die Ueberwachung
		False  Deaktiviert die Ueberwachung
		
Beispiel:

[KeySupport An]
;Schaltet den KeySupport ein
Action=EnableKeySupport
Enable=True
next=

[KeySupport Aus]
;Schaltet den KeySupport aus
Action=EnableKeySupport
Enable=False
next=

RegisterKeyDownEvent

Beschreibung:
Registriert einen Tastendruck mit einer Ganzzahl.
Ist KeySupport aktiviert, wird bei besagtem Tastendruck die Ganzzahl an die
OutPutList angehaengt. Man beachte: Tastendrittbelegungen (AltGr) werden nicht
akzeptiert. Daher ist im Gegensatz zu $ das Zeichen @ KEINE Taste.

Parameter:
Key          Tasten bzw Sondertastenname -> Siehe Anhang
Value        Ganzzahl die bei Tastendruck an die OutPutList angehaengt wird
BlockKey     Ist dieser Wert true, dann wird der Tastendruck nicht an den
	     Maker weitergeleitet. Daher koennen auch Tasten, die standard-
	     maessig vorbelegt sind (z.B. N=ESC) ohne Probleme genutzt werden.

Beispiel:

[9]
Action=registerKeyDownEvent
Key=9
Value=9 
next=tab
 
[tab]
Action=registerKeyDownEvent
Key=(Tab)
Value=10 
next=

RegisterKeyUpEvent

Beschreibung:
Registriert einen Tastenrelease mit einer Ganzzahl.
Ist KeySupport aktiviert, wird bei besagtem Loslassen der Taste die Ganzzahl an die
OutPutList angehaengt. Man beachte: Tastendrittbelegungen (AltGr) werden nicht
akzeptiert. Daher ist im Gegensatz zu $ das Zeichen @ KEINE Taste.

Parameter:
Key          Tasten bzw Sondertastenname -> Siehe Anhang
Value        Ganzzahl die bei Loslassen der Taste an die OutPutList angehaengt wird
BlockKey     Ist dieser Wert true, dann wird der Tastendruck nicht an den
	     Maker weitergeleitet. Daher koennen auch Tasten, die standard-
	     maessig vorbelegt sind (z.B. N=ESC) ohne Probleme genutzt werden.

Beispiel:

[9]
Action=registerKeyUpEvent
Key=9
Value=-9
next=tab
 
[tab]
Action=registerKeyUpEvent
Key=(Tab)
Value=-10 
next=

RegisterCheatEvent

Beschreibung:
Registriert einen Cheats mit einer Ganzzahl.
Ist KeySupport aktiviert, wird bei Eingabe des Cheats die Ganzzahl an die
OutPutList angehaengt. Auch Tastendrittbelegungen werden akzeptiert, da diese
als selbststaendige Zeichen fungieren. Funktionstasten werden jedoch bei der
Cheatcodeeingabe IGNORIERT, ausser (Enter). Dass heisst: Inel[F2]uki = Ineluki

Parameter:
Key         Cheatcode; Gross und Kleinschreibung wird NICHT unterschieden -> siehe 1)
Value       Ganzzahl die bei Eingabe an die OutPutList angehaengt wird
BlockKeys   Selbe Funktion wie in registerKeyDownEvent und registerKeyDownEvent
	    jedoch werden ALLE Zeichen im Cheat blokiert. Daher auch der Name
            BlockKeys im gegensatz zu BlockKey um Verwechslungen zu vermeiden.

Beispiel:

[cheat]
Action=registerCheatEvent
Cheat=Ineluki
Value=13
next=

RemoveBlockedKeys

Beschreibung:
Hebt die Weiterleitungsblockade (siehe Parameter BlockKeys in RegisterCheatEvent)
fuer alle Tasten im Parameter Keys auf.

Parameter:
Keys        Liste von Zeichen, die nicht mehr Blockiert werden sollen.
SystemKey   Ist dieser Parameter true, dann wird Keys nicht als Folge von Zeichen
            sondern als Systemtaste ( z.B. (F9) siehe auch Anhang) aufgefasst.
            Somit kann per Aufruf nur EINE Taste freigegeben werden.

Beispiel:

[release ABCDN]
;im Standard ist N = ESC .... jetzt stellen wir die Weiterleitung wieder her
;auch die Tasten A B C und D werden wiederhergestellt
Action=RemoveBlockedKeys
Keys=ABCDN
next=release F9

[release F9]
;F9 ruft das Menu der Variablen im Testmodus auf ...
;wurde die weiterleitung gesperrt, kann das menu nicht aufgerufen werden
Action=RemoveBlockedKeys
Keys=(F9)
SystemKey=true
;wuede diese Zeile nicht da stehen, wuerden die Zeichen ( F 9 und ) freigegeben
next=


A) Anhang
__________

Num(*) , Num(-) , Num(5) , Num(+)

(F1) ,  (F2) ,  (F3) , (F4)  , (F5)  , (F6)
(F7) ,  (F8) ,  (F9) , (F10) , (F11) , (F12)

(Esc) , (Tab) , (Enter) , (Strg) , (Alt)

(BackSpace) , (Space)
(CapsLock) , (NumLock) , (ScrollLock)

(Einfg) , (Pos1) , (BildHoch) 
(Entf)  , (Ende) , (BildRunter) 

(Hoch) , (Runter) , (Links) , (Rechts)

(LShift runter) , (RShift runter)
(LShift hoch) , (RShift hoch)





Edit by Gekiganger:
=================


Vom RPG Maker 2000 belegte Tasten:
------------------------------------------

Men:

(Esc) , (Einfg) , Num(0) , x , c , v , b , n


Aktion:

(Space) , (Enter) , Num(Enter) , z


Sonstiges:

 (F4) , (F5) , (F9) , (F12) , (Strg) , (Hoch) , (Runter) , (Links) , (Rechts) , Num(2) , Num(4) , Num(6) , Num(8)



Nicht belegbare Tasten:
------------------------------------

Num(/) , Num(2) , Num(4) , Num(6) , Num(8)



Belegbare Tasten, bei denen die Shiftfunktion mglich ist:
-----------------------------------------------------------------------

^ 
1 !
2 "
3 
4 $
5 %
6 &
7 /
8 (
9 )
0 =
 ?
 `
+ *
# '
< >
, ;
. :
- _


und Buchstaben


Zusammenhngende Tasten:
----------------------------------------------

(Pos1) und Num(Pos1)
(Entf) und Num(Entf)
(Ende) und Num(Ende)
(BildHoch) und Num(BildHoch)
(BildRunter) und Num(BildRunter)